474044f6e0d6b436f417708cc047140fb7180461,NoHttp/src/com/yolanda/nohttp/BasicConnection.java,BasicConnection,setHeaders,#URI#HttpURLConnection#ImplServerRequest#,98
Before Change
// 4.Add cookie to headers
try {
headers.addCookie(uri, NoHttp.getDefaultCookieManager());
} catch (IOException e) {
Logger.e(e);
}
After Change
@TargetApi(Build.VERSION_CODES.KITKAT)
private void setHeaders(URI uri, HttpURLConnection connection, ImplServerRequest request) throws IOException {
// 1.Build Headers
Headers headers = request.headers();
// 2.Set content Length
if (request.doOutPut()) {
long contentLength = request.getContentLength();
if (contentLength < Integer.MAX_VALUE && contentLength > 0)
connection.setFixedLengthStreamingMode((int) contentLength);
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
connection.setFixedLengthStreamingMode(contentLength);
else
connection.setChunkedStreamingMode(256 * 1024);
headers.set(Headers.HEAD_KEY_CONTENT_LENGTH, Long.toString(contentLength));
}
// 3.Base header
// to fix bug: accidental EOFException before API 19
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT)
headers.set(Headers.HEAD_KEY_CONNECTION, Headers.HEAD_VALUE_CONNECTION_KEEP_ALIVE);
else
headers.set(Headers.HEAD_KEY_CONNECTION, Headers.HEAD_VALUE_CONNECTION_CLOSE);
headers.set(Headers.HEAD_KEY_ACCEPT_ENCODING, Headers.HEAD_VALUE_ACCEPT_ENCODING);
headers.addCookie(uri, NoHttp.getDefaultCookieHandler());
headers.set(Headers.HEAD_KEY_CONTENT_TYPE, request.getContentType());
headers.set(Headers.HEAD_KEY_USER_AGENT, request.getUserAgent());